home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / jaz_clib.arc / RENFILE.DMO < prev    next >
Text File  |  1989-04-09  |  2KB  |  53 lines

  1. #include <jzdirect.h>
  2. main(argc,argv)
  3. int argc;
  4. char **argv;
  5. {
  6.  
  7.   /* various work variables */
  8.  
  9.   int werr,wrenerr,w;
  10.   TDIR wdir;
  11.   char woldpath[50],wnewpath[50],woldname[100],wnewname[100];
  12.   char wspec[50];
  13.  
  14.   if (argc != 3) {    /* not enough args */
  15.     printf("\nRENFILE   by Jack A. Zucker @794-5950 | 794-8763 | 937-9500");
  16.     printf("\nThis program allows renaming files across subdirectories");
  17.     printf("\nbut unlike previous versions, accepts wildcards");
  18.     printf("\nUSAGE:    renfile <old path\\old name> <new path>");
  19.     exit(1);
  20.   }
  21.  
  22.   strcpy(woldpath,argv[1]);   /* parse out path from old file name */
  23.   w = rindex(woldpath,'\\');  /* see if there is a path specified  */
  24.   woldpath[++w] = '\0';       /* woldpath now contains only the path */
  25.   strcpy(wspec,argv[1]+w);    /* wspec contains only the file spec  */
  26.  
  27.   strcpy(wnewpath,argv[2]);   /* get new name                */
  28.   w = rindex(wnewpath,'\\');  /* look for and get rid of trailing '/'*/
  29.   if (w == (strlen(wnewpath)-1)) /* new name ends in '/'             */
  30.      wnewpath[w] = 0;        /* get rid of '/'                    */
  31.  
  32.   werr = jzfndfst(argv[1],32,&wdir);    /* start directory search    */
  33.  
  34.   if (! werr)            /* zero indicates we got a dir item  */
  35.     do {
  36.       strcpy(woldname,woldpath);    /* concatenate wdir.name to path */
  37.       strcat(woldname,wdir.name);
  38.       strcpy(wnewname,wnewpath);
  39.       strcat(wnewname,"\\");
  40.       strcat(wnewname,wdir.name);    /* put file name at end of dest dir */
  41.       if (rename(wnewname,woldname)) {
  42.     printf("\n%s could not be renamed to %s",woldname,wnewname);
  43.     werr = jzfndnxt(&wdir);     /* on error skip this item */
  44.       }
  45.     /* since we effectively deleted this item, the next directory */
  46.     /* search must begin from the beginning, not the next item !! */
  47.       else {
  48.     printf("\n%s renamed to %s",woldname,wnewname);
  49.     werr = jzfndfst(argv[1],32,&wdir);
  50.       }
  51.     } while (! werr);
  52. }
  53.